#ifndef _SCENE_STRUCTURE_H
#define _SCENE_STRUCTURE_H

class SceneStructure {

private:
	World *world;

	ID3DBlob *vertexColoredShaderBuffer;
	ID3DBlob *vertexTexturedShaderBuffer;
	ID3DBlob *pixelColoredShaderBuffer;
	ID3DBlob *pixelTexturedShaderBuffer;

	ID3D11VertexShader *vertexColoredShader;
	ID3D11VertexShader *vertexTexturedShader;
	ID3D11PixelShader *pixelColoredShader;
	ID3D11PixelShader *pixelTexturedShader;

public:
	SceneStructure() {}
	~SceneStructure() {
		delete world;
	}

	void setWorld(World *pWorld) { world = pWorld; }
	void setVertexColoredShaderBuffer(ID3DBlob *pBuffer) { vertexColoredShaderBuffer = pBuffer; }
	void setVertexTexturedShaderBuffer(ID3DBlob *pBuffer) { vertexTexturedShaderBuffer = pBuffer; }
	void setPixelColoredShaderBuffer(ID3DBlob *pBuffer) { pixelColoredShaderBuffer = pBuffer; }
	void setPixelTexturedShaderBuffer(ID3DBlob *pBuffer) { pixelTexturedShaderBuffer = pBuffer; }
	void setVertexColoredShader(ID3D11VertexShader *pShader) { vertexColoredShader = pShader; }
	void setVertexTexturedShader(ID3D11VertexShader *pShader) { vertexTexturedShader = pShader; }
	void setPixelColoredShader(ID3D11PixelShader *pShader) { pixelColoredShader = pShader; }
	void setPixelTexturedShader(ID3D11PixelShader *pShader) { pixelTexturedShader = pShader; }

	World * getWorld() { return world; }
	ID3DBlob * getVertexColoredShaderBuffer() { return vertexColoredShaderBuffer; }
	ID3DBlob * getVertexTexturedShaderBuffer() { return vertexTexturedShaderBuffer; }
	ID3DBlob * getPixelColoredShaderBuffer() { return pixelColoredShaderBuffer; }
	ID3DBlob * getPixelTexturedShaderBuffer() { return pixelTexturedShaderBuffer; }
	ID3D11VertexShader * getVertexColoredShader() { return vertexColoredShader; }
	ID3D11VertexShader * getVertexTexturedShader() { return vertexTexturedShader; }
	ID3D11PixelShader * getPixelColoredShader() { return pixelColoredShader; }
	ID3D11PixelShader * getPixelTexturedShader() { return pixelTexturedShader; }

};

#endif
